import {Observable, ReplaySubject} from 'rxjs';
import {Injectable} from '@angular/core';

@Injectable({
  providedIn: 'root'
})

/**
 * 非嵌套组件之间的通信
 * isToMenu 1.直接跳转菜单
 */
export class CommunicateService {
  private message: ReplaySubject<any> = new ReplaySubject<any>(1);

  /**
   * 向其他组件发布消息
   * @param mes 需要发送的消息
   */
  public sendMessage(mes: any) {
    this.message.next(mes);
  }

  /**
   * 订阅其他组件发送的消息
   * @returns Observable<any> 返回类型
   */
  public getMessage(): Observable<any> {
    return this.message.asObservable();
  }
}
